home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
PRINTER
/
PROHP.ARJ
/
DRELATIV.PRG
< prev
next >
Wrap
Text File
|
1992-06-23
|
4KB
|
126 lines
/*
┌─────────────────────────────────────────────────────────────────────────┐
│ │
│ Program : relative.prg │
│ │
│ Purpose : demonstrate the use of relative movement and drawing. │
│ │
│ Author : Copyright (C) 1992, I.L.A.,Inc. All Rights reserved. │
│ │
│ Comments: This source code may be distributed and used freely │
│ provided that the copyright notice is not removed. │
│ │
└─────────────────────────────────────────────────────────────────────────┘
*/
#include "prohp.ch"
proc main()
Local nLw, nChW, nChH, nFill,nGrayPat
HP_init()
set2print("drelativ.hpc")
HP_send(.t.)
HP_orient(LANDSCAPE)
nLw := 0.5 // line width for character drawing.
nChH:= 4 // height of text drawn
nChW:= (10 -(nLw*5)) /5 // width of character drawn
nFill := GFILLGRAY // fill type
nGrayPat := 20 // fill value
HP_data(D_LINEFILL,nFill) // tell ProHP of fill
HP_data(D_LINEGRAYPAT,nGrayPat) // and gray shade
HP_setpos(7,0) // baseline for text "ProHP"
ProHP(nChH,nChW,nLw) // draw ProHP
qqout("TM")
// now a little different, smaller and in black
nLw := 0.1
nChH:= 1
nChW:= 1
HP_data(D_LINEFILL,GFILLGRAY)
HP_data(D_LINEGRAYPAT,100)
HP_setpos(2,1) // baseline for ProHP
HP_savecsr() // save cursor pos
ProHP(nChH,nChW,nLw) // draw "ProHP"
qqout("TM") // add TM
HP_restcsr() // restore cursor pos
HP_setpos(nLw/2,-(nLw/2),.t.) // move a little down and left
HP_data(D_LINEFILL,GFILLGRAY) // gray fill
HP_data(D_LINEGRAYPAT,20) // 20 gray shade
ProHP(nChH,nChW,nLw) // draw "ProHP"
HPscale(50)
HP_setpos(2,6.5)
ProHP(nChH,nChW,nLw)
qqout("TM")
HP_reset()
set2screen()
return
/*
This following procedure draw the text "ProHP".
you can see how we generate the text with relative cursor
positioning and line drawing. Each letter built in block
for later evaluation. You can use this method to build graphs
and complicated forms easy.
*/
Proc ProHP(nChH,nChW,nLw)
Local bP:={|h,w,lw|w-=lw,HP_savecsr(),;
HP_setpos(-(h),,.t.),;
HP_rline(h,lw),;
HP_rline(lw,w),;
HP_setpos(h/2,,.t.),;
HP_rline(lw,w),;
HP_setpos(-(h/2),w,.t.),;
HP_rline(h/2+lw,lw),;
HP_restcsr(),;
HP_setpos(,w+lw*2,.t.)}
Local bH:={|h,w,lw|w-=lw,HP_savecsr(),;
HP_setpos(-(h),,.t.),;
HP_rline(h,lw),;
HP_setpos(h/2,,.t.),;
HP_rline(lw,w),;
HP_setpos(-(h/2),w,.t.),;
HP_rline(h,lw),;
HP_restcsr(),;
HP_setpos(,w+lw*2,.t.)}
Local br:={|h,w,lw|w-=lw,w*=0.8,HP_savecsr(),;
HP_setpos(-(h/2),,.t.),;
HP_rline(h/2,lw),;
HP_savecsr(),;
HP_setpos(MIN(lw,0.2),,.t.),;
HP_rline(lw,lw*2),;
HP_restcsr(),;
HP_setpos(,lw*2,.t.),;
HP_rline(lw,w-lw),;
HP_restcsr(),;
HP_setpos(,w+lw*2,.t.)}
Local bo:={|h,w,lw|w-=lw,w*=0.8,HP_savecsr(),;
HP_setpos(-(h/2),,.t.),;
HP_rline(h/2,lw),;
HP_rline(lw,w),;
HP_setpos(,w,.t.),;
HP_rline(h/2,lw),;
HP_setpos(h/2-lw,-w,.t.),;
HP_rline(lw,w),;
HP_restcsr(),;
HP_setpos(,w+lw*2,.t.)}
eval(bP,nChH,nChW,nLw) // draw 'P'
eval(br,nChH,nChW,nLw) // draw 'r'
eval(bo,nChH,nChW,nLw) // draw 'o'
eval(bH,nChH,nChW,nLw) // draw 'H'
eval(bP,nChH,nChW,nLw) // draw 'P'
return